package IT.DataAccess;

import IT.Entities.Cliente;
import IT.Entities.ProyectoActividad;
import IT.Entities.ProyectoActividadAdjunto;
import IT.Entities.ProyectoActividadHistorial;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import java.util.logging.Level;
import java.util.logging.Logger;

public class DatProyectoActividad implements IDatProyectoActividad {
    
    private ProyectoActividad oActividad;
    private Cliente oCliente;
    private List<ProyectoActividad> oLista;
    private BDConexion oBase;
    
    private Connection oConexion;
    private CallableStatement oCst;    
    private ResultSet oRst;    
    private List<ProyectoActividadHistorial> oListaHis;
    private List<ProyectoActividadAdjunto> oListaAdjunto;
    
    private ProyectoActividadHistorial oHistorial;
    private ProyectoActividadAdjunto oAdjunto;
     
    public List<ProyectoActividad> Listar() {
        
        oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadListar()}");           
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),                        
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor"),
                        oRst.getInt("Cantidad"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("can_adj_in")
                        ));
                /*cod_act_in, ord_act_in, nom_act_vc,
         fec_ini_act_dt, fec_ini_act_vc, fec_ent_act_dt, fec_ent_act_vc, obs_act_vc, 
         est_act_in, Estado, cod_eta_in, cod_sup_act_in, cod_emp_in, Empleado, 
         tip_act_in, Tipo, tip_rsp_act_in, TipoRstpa*/
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }

    public ProyectoActividad Ind(int nCodigo) {
        oActividad=new ProyectoActividad();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadInd(?)}");           
            oCst.setInt(1, nCodigo);
            oRst = oCst.executeQuery();

            while (oRst.next()) {               
                 oActividad.setCod_act_in(oRst.getInt("cod_act_in"));
                 oActividad.setOrd_act_in(oRst.getInt("ord_act_in"));
                 oActividad.setNom_act_vc(oRst.getString("nom_act_vc"));
                 oActividad.setFec_ini_act_dt(oRst.getDate("fec_ini_act_dt"));
                 oActividad.setFec_ini_act_vc(oRst.getString("fec_ini_act_vc"));
                 
                 oActividad.setFec_ent_act_dt(oRst.getDate("fec_ent_act_dt"));
                 oActividad.setFec_ent_act_vc(oRst.getString("fec_ent_act_vc"));
                 
                 oActividad.setObs_act_vc(oRst.getString("obs_act_vc"));
                 oActividad.setEst_act_in(oRst.getInt("est_act_in"));
                 oActividad.setEstado(oRst.getString("Estado"));
                 oActividad.setEst_eta_in(oRst.getInt("cod_eta_in"));
                 oActividad.setCod_sup_act_in(oRst.getInt("cod_sup_act_in"));
                 oActividad.setCod_emp_in(oRst.getInt("cod_emp_in"));
                 oActividad.setEmpleado(oRst.getString("Empleado"));
                 oActividad.setTip_act_in(oRst.getInt("tip_act_in"));
                 oActividad.setTipo(oRst.getString("Tipo"));
                 oActividad.setTip_rsp_act_in(oRst.getInt("tip_rsp_act_in"));
                 oActividad.setTipoRstpa(oRst.getString("TipoRstpa"));  
                 oActividad.setEntregable(oRst.getInt("cod_ent_in"));                                  
                 oActividad.setApro_act_bo(oRst.getBoolean("apro_act_bo"));
                 oActividad.setCod_ant_act_in(oRst.getInt("cod_ant_act_in"));
                 oActividad.setCod_plaact_in(oRst.getInt("cod_plaact_in"));
                 oActividad.setPredecesor(oRst.getString("Predecesor"));
                 oActividad.setNom_plaproy_vc(oRst.getString("nom_plaproy_vc"));
                 
                 oActividad.setCod_proy_in(oRst.getInt("cod_proy_in"));
                 oActividad.setNom_proy_vc(oRst.getString("nom_proy_vc"));
                 
                 oActividad.setCod_eta_in(oRst.getInt("cod_eta_in"));
                 oActividad.setNom_eta_vc(oRst.getString("nom_eta_vc"));
                 
                 oActividad.setEstadoPredecesor(oRst.getInt("est_actpre_in"));
                 oActividad.setTipoPredecesor(oRst.getInt("tip_actpre_in"));                 
                 oActividad.setPrincipalPredecesor(oRst.getBoolean("apro_actpre_bo"));
                 
                 oActividad.setProspecto(oRst.getInt("tip_ori_cli_in"));
                 
                 oActividad.setCod_proy_in(oRst.getInt("cod_proy_in"));
                 
                 oActividad.setCan_adj_in(oRst.getInt("can_adj_in"));
                 
                 oActividad.setEje_act_bo(oRst.getBoolean("eje_act_bo"));
                 oActividad.setCod_eje_act_in(oRst.getInt("cod_eje_act_in"));
                 oActividad.setEjecutor(oRst.getString("Ejecutor"));
                 
                 oActividad.setFec_ini_dt(oRst.getDate("fec_ini_dt"));
                 oActividad.setFec_ini_vc(oRst.getString("fec_ini_vc"));
                 
                 oActividad.setCod_proy_vc(oRst.getString("cod_proy_vc"));
                 
                 oActividad.setCod_cli_in(oRst.getInt("cod_cli_in"));
                 oActividad.setCod_pro_in(oRst.getInt("cod_pro_in"));
                 oActividad.setTip_per_in(oRst.getInt("tip_per_in"));
                 oActividad.setCliente(oRst.getString("Cliente"));
                 
                 oActividad.setDis_proy_vc(oRst.getString("dis_proy_vc"));
                 oActividad.setTip_proy_act_in(oRst.getInt("tip_proy_act_in"));
                 oActividad.setCrm_proy_bo(oRst.getBoolean("crm_proy_bo"));
                 oActividad.setFec_env_act_dt(oRst.getDate("fec_env_act_dt"));
                 oActividad.setFec_env_act_vc(oRst.getString("fec_env_act_vc"));
                 
                 
            }           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oActividad;
    }

    public List<ProyectoActividad> Ubi(int nEtapa) {
        oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadUbi(?)}");           
            oCst.setInt(1, nEtapa);
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor") ,
                        oRst.getInt("Cantidad"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),                        
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("can_adj_in")
                        ));            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
    
    public List<ProyectoActividad> Tarea(String cActividad, boolean bFecha, Date dInicio, Date dFin, int nEmpleado) {
        oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadTarea(?,?,?, ?,?)}");           
            oCst.setString(1, cActividad);
            oCst.setBoolean(2, bFecha);
            oCst.setDate(3, dInicio);
            
            oCst.setDate(4, dFin);
            oCst.setInt(5, nEmpleado);
            
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oActividad=new ProyectoActividad();
                oActividad.setCod_act_in(oRst.getInt("cod_act_in"));
                oActividad.setOrd_act_in(oRst.getInt("ord_act_in"));
                oActividad.setNom_act_vc(oRst.getString("nom_act_vc"));
                oActividad.setFec_ini_act_dt(oRst.getDate("fec_ini_act_dt"));
                oActividad.setFec_ini_act_vc(oRst.getString("fec_ini_act_vc"));
                 
                oActividad.setFec_ent_act_dt(oRst.getDate("fec_ent_act_dt"));
                oActividad.setFec_ent_act_vc(oRst.getString("fec_ent_act_vc"));
                 
                 oActividad.setObs_act_vc(oRst.getString("obs_act_vc"));
                 oActividad.setEst_act_in(oRst.getInt("est_act_in"));
                 oActividad.setEstado(oRst.getString("Estado"));
                 oActividad.setCod_sup_act_in(oRst.getInt("cod_sup_act_in"));
                 oActividad.setCod_emp_in(oRst.getInt("cod_emp_in"));
                 oActividad.setEmpleado(oRst.getString("Empleado"));
                 oActividad.setTip_act_in(oRst.getInt("tip_act_in"));
                 oActividad.setTipo(oRst.getString("Tipo"));
                 oActividad.setTip_rsp_act_in(oRst.getInt("tip_rsp_act_in"));
                 oActividad.setTipoRstpa(oRst.getString("TipoRstpa"));  
                 oActividad.setEntregable(oRst.getInt("cod_ent_in"));                                  
                 oActividad.setApro_act_bo(oRst.getBoolean("apro_act_bo"));
                 oActividad.setCod_ant_act_in(oRst.getInt("cod_ant_act_in"));
                 
                 oActividad.setCan_adj_in(oRst.getInt("can_adj_in"));
                 
                 oActividad.setEje_act_bo(oRst.getBoolean("eje_act_bo"));
                 oActividad.setCod_eje_act_in(oRst.getInt("cod_eje_act_in"));
                 oActividad.setEjecutor(oRst.getString("Ejecutor"));     
                 
                 oActividad.setTip_proy_act_in(oRst.getInt("tip_proy_act_in"));
                oLista.add(oActividad);            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
    
    public List<ProyectoActividad> Proyecto(int nProyecto) {
        oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadProyecto(?)}");           
            oCst.setInt(1, nProyecto);
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor"),
                        oRst.getInt("Cantidad"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),                        
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("can_adj_in")
                        ));            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
   
    public List<ProyectoActividad> Emp(String cActividad,int nTipo,int nEstado,
                        boolean bFecha,Date dInicio,Date dFin,String cCliente,int nEmpleado) {
     oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEmp(?,?,?, ?,?,?, ?,?)}");           
            oCst.setString(1, cActividad);
            oCst.setInt(2, nTipo);
            oCst.setInt(3, nEstado);
            oCst.setBoolean(4, bFecha);
            oCst.setDate(5, dInicio);
            oCst.setDate(6, dFin);
            oCst.setString(7, cCliente);
            oCst.setInt(8, nEmpleado);
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getInt("cod_proy_in"),
                        oRst.getString("nom_proy_vc"),
                        oRst.getInt("cod_cli_in"),
                        oRst.getInt("cod_pro_in"),
                        oRst.getInt("tip_per_in"),
                        oRst.getString("tip_per_vc"),
                        oRst.getString("Cliente"),
                        oRst.getInt("Cantidad"),
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor"),
                        oRst.getString("nom_plaproy_vc"),
                        oRst.getInt("can_adj_in"),
                        oRst.getBoolean("eje_act_bo"),
                        oRst.getInt("cod_eje_act_in"),
                        oRst.getString("Ejecutor"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),                        
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("dia_ent_act_in"),
                        oRst.getString("cod_proy_vc"),
                        oRst.getInt("est_actpre_in"),
                        oRst.getInt("tip_actpre_in"),
                        oRst.getBoolean("apro_actpre_bo"),
                        oRst.getInt("tip_proy_act_in")
                        ));            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
    
    public List<ProyectoActividad> Todos(boolean bFecha,Date dInicio,Date dFin) {
     oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadTodos(?,?,?)}");           
            oCst.setBoolean(1, bFecha);
            oCst.setDate(2, dInicio);
            oCst.setDate(3, dFin);
           
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getInt("cod_proy_in"),
                        oRst.getString("nom_proy_vc"),
                        oRst.getInt("cod_cli_in"),
                        oRst.getInt("cod_pro_in"),
                        oRst.getInt("tip_per_in"),
                        oRst.getString("tip_per_vc"),
                        oRst.getString("Cliente"),
                        oRst.getInt("Cantidad"),
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor"),
                        oRst.getString("nom_plaproy_vc"),
                        oRst.getInt("can_adj_in"),
                        oRst.getBoolean("eje_act_bo"),
                        oRst.getInt("cod_eje_act_in"),
                        oRst.getString("Ejecutor"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),                        
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("dia_ent_act_in"),
                        oRst.getString("cod_proy_vc"),
                        oRst.getInt("est_actpre_in"),
                        oRst.getInt("tip_actpre_in"),
                        oRst.getBoolean("apro_actpre_bo"),
                        oRst.getInt("tip_proy_act_in")
                        ));            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
    
    public List<ProyectoActividad> EmpCalendario(String cEmpleado) {
     oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEmpCalendario(?)}");           
            oCst.setString(1, cEmpleado);
            
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getInt("cod_proy_in"),
                        oRst.getString("nom_proy_vc"),
                        oRst.getInt("cod_cli_in"),
                        oRst.getInt("cod_pro_in"),
                        oRst.getInt("tip_per_in"),
                        oRst.getString("tip_per_vc"),
                        oRst.getString("Cliente"),
                        oRst.getInt("Cantidad"),
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor"),
                        oRst.getString("nom_plaproy_vc"),
                        oRst.getInt("can_adj_in"),
                        oRst.getBoolean("eje_act_bo"),
                        oRst.getInt("cod_eje_act_in"),
                        oRst.getString("Ejecutor"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),                        
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("dia_ent_act_in"),
                        oRst.getString("cod_proy_vc"),
                        oRst.getInt("est_actpre_in"),
                        oRst.getInt("tip_actpre_in"),
                        oRst.getBoolean("apro_actpre_bo"),                        
                        oRst.getInt("tip_proy_act_in")
                        ));            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
    
    public List<ProyectoActividad> Sup(String cActividad,int nTipo,int nEstado,
                        boolean bFecha,Date dInicio,Date dFin,String cCliente,int nEmpleado) {
        oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadSup(?,?,?, ?,?,?, ?,?)}");         
            oCst.setString(1, cActividad);
            oCst.setInt(2, nTipo);
            oCst.setInt(3, nEstado);
            oCst.setBoolean(4, bFecha);
            oCst.setDate(5, dInicio);
            oCst.setDate(6, dFin);
            oCst.setString(7, cCliente);
            oCst.setInt(8, nEmpleado);
            /*_nom_act_vc varchar(100),
                _tip_ent_in int, _est_act_in int,
                _bFecha bool,dFInicio datetime,dFFin datetime,
                _nom_cli_vc  varchar(100),
                _cod_emp_in int)*/
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getInt("cod_proy_in"),
                        oRst.getString("nom_proy_vc"),
                        oRst.getInt("cod_cli_in"),
                        oRst.getInt("cod_pro_in"),
                        oRst.getInt("tip_per_in"),
                        oRst.getString("tip_per_vc"),
                        oRst.getString("Cliente"),
                        oRst.getInt("Cantidad"),
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor") ,
                        oRst.getString("nom_plaproy_vc"),
                        oRst.getInt("can_adj_in"),
                        oRst.getBoolean("eje_act_bo"),
                        oRst.getInt("cod_eje_act_in"),
                        oRst.getString("Ejecutor"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),                        
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("dia_ent_act_in"),
                        oRst.getString("cod_proy_vc"),
                        oRst.getInt("est_actpre_in"),
                        oRst.getInt("tip_actpre_in"),
                        oRst.getBoolean("apro_actpre_bo"),
                        oRst.getInt("tip_proy_act_in")
                        ));            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
    
    public List<ProyectoActividad> Apro(String cActividad,int nTipo,int nEstado,
                        boolean bFecha,Date dInicio,Date dFin,String cCliente,int nEmpleado) {
         oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadApro(?,?,?, ?,?,?, ?,?)}");         
            oCst.setString(1, cActividad);
            oCst.setInt(2, nTipo);
            oCst.setInt(3, nEstado);
            oCst.setBoolean(4, bFecha);
            oCst.setDate(5, dInicio);
            oCst.setDate(6, dFin);
            oCst.setString(7, cCliente);
            oCst.setInt(8, nEmpleado);
            /*_nom_act_vc varchar(100),
                _tip_ent_in int, _est_act_in int,
                _bFecha bool,dFInicio datetime,dFFin datetime,
                _nom_cli_vc  varchar(100),
                _cod_emp_in int)*/
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),
                        oRst.getInt("ord_act_in"),
                        oRst.getString("nom_act_vc"), 
                        oRst.getDate("fec_ini_act_dt"),
                        oRst.getString("fec_ini_act_vc"),
                        oRst.getDate("fec_ent_act_dt"),
                        oRst.getString("fec_ent_act_vc"),
                        oRst.getString("obs_act_vc"),
                        oRst.getInt("est_act_in"),
                        oRst.getString("Estado"),
                        oRst.getInt("cod_eta_in"),
                        oRst.getInt("cod_sup_act_in"),
                        oRst.getInt("cod_emp_in"),
                        oRst.getString("Empleado"),
                        oRst.getInt("tip_act_in"),
                        oRst.getString("Tipo"),
                        oRst.getInt("tip_rsp_act_in"),
                        oRst.getString("TipoRstpa"),
                        oRst.getString("nom_eta_vc"),
                        oRst.getInt("cod_proy_in"),
                        oRst.getString("nom_proy_vc"),
                        oRst.getInt("cod_cli_in"),
                        oRst.getInt("cod_pro_in"),
                        oRst.getInt("tip_per_in"),
                        oRst.getString("tip_per_vc"),
                        oRst.getString("Cliente"),
                        oRst.getInt("Cantidad"),
                        oRst.getInt("cod_ent_in"),
                        oRst.getBoolean("apro_act_bo"),
                        oRst.getInt("cod_ant_act_in"),
                        oRst.getInt("cod_plaact_in"), 
                        oRst.getString("Predecesor") ,
                        oRst.getString("nom_plaproy_vc"),
                        oRst.getInt("can_adj_in"),
                        oRst.getBoolean("eje_act_bo"),
                        oRst.getInt("cod_eje_act_in"),
                        oRst.getString("Ejecutor"),
                        oRst.getDate("fec_reg_act_dt"),
                        oRst.getString("fec_reg_act_vc"),
                        oRst.getInt("dia_act_in"),                        
                        oRst.getInt("diac_act_in"),
                        oRst.getInt("dia_ent_act_in"),
                        oRst.getString("cod_proy_vc"),
                        oRst.getInt("est_actpre_in"),
                        oRst.getInt("tip_actpre_in"),
                        oRst.getBoolean("apro_actpre_bo"),
                        oRst.getInt("tip_proy_act_in")
                        ));            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
     
    public List<ProyectoActividad> Mensaje(int nActividad) {
          oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadMensaje(?)}");         
            oCst.setInt(1, nActividad);
           
            oRst = oCst.executeQuery();
                
            while (oRst.next()) { 
                  oLista.add(new ProyectoActividad(
                        oRst.getInt("cod_act_in"),                      
                        oRst.getString("nom_act_vc"),
                        oRst.getInt("cod_emp_in"),                      
                        oRst.getString("Empleado")
                        ));
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
    
    public List<ProyectoActividad> Etapa(int nActividad) {
        oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEtapa(?)}");         
            oCst.setInt(1, nActividad);
           
            oRst = oCst.executeQuery();
                
            while (oRst.next()) { 
                oActividad=new ProyectoActividad();
                oActividad.setCod_act_in(oRst.getInt("cod_act_in"));
                oActividad.setNom_act_vc(oRst.getString("nom_act_vc"));
                oActividad.setTip_act_in(oRst.getInt("tip_ent_in"));                
                oLista.add(oActividad);
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }
     
    public void Insertar(ProyectoActividad ent) {
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadInsertar(?,?,?, ?,?,?, ?,?,?, ?,?,? ,?,?,?, ?)}");    
                   
            oCst.setInt(1, ent.getOrd_act_in());              
            oCst.setString(2, ent.getNom_act_vc());
            oCst.setDate(3, ent.getFec_ini_act_dt());
            
            oCst.setDate(4, ent.getFec_ent_act_dt());
            oCst.setString(5, ent.getObs_act_vc());
            oCst.setInt(6, ent.getEst_act_in());
            
            oCst.setInt(7, ent.getCod_eta_in());
            oCst.setInt(8, ent.getCod_sup_act_in());
            oCst.setInt(9, ent.getCod_emp_in());
            
            oCst.setInt(10, ent.getTip_act_in());
            oCst.setInt(11, ent.getTip_rsp_act_in());            
            oCst.setBoolean(12, ent.isApro_act_bo());
            
            oCst.setInt(13, ent.getCod_ant_act_in());
            oCst.setInt(14, ent.getCod_plaact_in());
            oCst.setBoolean(15, ent.isEje_act_bo());
            
            oCst.setInt(16, ent.getCod_eje_act_in());
            
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void Asignar(int nCodigo, int nEtapa) {
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadAsignacion(?,?)}");    
                   
            oCst.setInt(1, nCodigo);              
            oCst.setInt(2, nEtapa);
         
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void Editar(ProyectoActividad ent) {
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEditar(?,?,?, ?,?,?)}");            
            oCst.setInt(1, ent.getCod_act_in());    
            oCst.setDate(2, ent.getFec_ini_act_dt());
            oCst.setDate(3, ent.getFec_ent_act_dt());         
            oCst.setInt(4, ent.getCod_emp_in());          
            oCst.setString(5, ent.getObs_act_vc());    
            oCst.setInt(6, ent.getCod_sup_act_in());
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public int InsertarTarea(ProyectoActividad ent) {
        int nCodigo=0;
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadTareaInsertar(?,?,?, ?,?,?, ?,?,?, ?)}");            
            
            oCst.registerOutParameter(1, java.sql.Types.INTEGER);      
            oCst.setString(2, ent.getNom_act_vc());
            oCst.setDate(3, ent.getFec_ini_act_dt());
            
            
            oCst.setDate(4, ent.getFec_ent_act_dt());            
            oCst.setString(5, ent.getObs_act_vc());
            oCst.setInt(6, ent.getEst_act_in());
            
            oCst.setInt(7, ent.getCod_sup_act_in());            
            oCst.setInt(8, ent.getCod_emp_in());
            oCst.setInt(9, ent.getTip_act_in());
            
            oCst.setInt(10, ent.getTip_rsp_act_in());
            
            oCst.execute();      
            
            nCodigo=oCst.getInt(1);
            
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
        return nCodigo;
    }

    public void EditarTarea(ProyectoActividad ent) {      
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadTareaEditar(?,?,?, ?,?,?, ?,?,?, ?)}");            
            
            oCst.setInt(1, ent.getCod_act_in());    
            oCst.setString(2, ent.getNom_act_vc());
            oCst.setDate(3, ent.getFec_ini_act_dt());
            
            
            oCst.setDate(4, ent.getFec_ent_act_dt());            
            oCst.setString(5, ent.getObs_act_vc());
            oCst.setInt(6, ent.getEst_act_in());
            
            oCst.setInt(7, ent.getCod_sup_act_in());            
            oCst.setInt(8, ent.getCod_emp_in());
            oCst.setInt(9, ent.getTip_act_in());
            
            oCst.setInt(10, ent.getTip_rsp_act_in());
            
            oCst.execute();      
                        
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    

    public void Eliminar(int nCodigo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    /*Historial*/
    
    public void InsertarHistorial(ProyectoActividadHistorial ent) {
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadHistorialInsertar(?,?,?, ?,?)}");    
            /* (_tip_acthis_in INTEGER, _res_acthis_in INTEGER,
             _obs_acthis_vc VARCHAR(300), _cod_sup_acthis_in INTEGER, _cod_act_in INTEGER)*/
            oCst.setInt(1, ent.getTip_acthis_in());              
            oCst.setInt(2, ent.getRes_acthis_in());         
            oCst.setString(3, ent.getObs_acthis_vc());
            oCst.setInt(4, ent.getCod_sup_acthis_in());
            oCst.setInt(5, ent.getCod_act_in());
            
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public List<ProyectoActividadHistorial> UbiHis(int nEtapa) {
        oListaHis=new ArrayList<ProyectoActividadHistorial>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadHistorialUbi(?)}");         
            oCst.setInt(1, nEtapa);
            oRst = oCst.executeQuery();
                /*SELECT cod_acthist_in, tip_acthis_in,ufn_DevuelveCatalogo(5013,tip_acthis_in) as Tipo,
                fec_acthis_dt, DATE_FORMAT(fec_acthis_dt, '%d/%m/%Y') as fec_acthis_vc,
                res_acthis_in, ufn_DevuelveCatalogo(5014,res_acthis_in) as Rspta ,
                obs_acthis_vc,cod_sup_acthis_in, cod_a**/
            while (oRst.next()) {
                oListaHis.add(new ProyectoActividadHistorial(oRst.getInt("cod_acthist_in"), 
                        oRst.getInt("tip_acthis_in"), oRst.getString("Tipo"), 
                        oRst.getDate("fec_acthis_dt"), oRst.getString("fec_acthis_vc"), 
                        oRst.getInt("res_acthis_in"), 
                        oRst.getString("Rspta"), oRst.getString("obs_acthis_vc"), 
                        oRst.getInt("cod_sup_acthis_in"), 
                        oRst.getInt("cod_sup_acthis_in"), 
                        oRst.getString("Empleado")));             
            }             
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oListaHis;
    }

    public Cliente IndCliente(int nCodigo) {
        oCliente=new Cliente();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadCliente(?)}");           
            oCst.setInt(1, nCodigo);
            oRst = oCst.executeQuery();

            while (oRst.next()) {               
                oCliente.setCod_cli_in(oRst.getInt("cod_cli_in"));
                oCliente.setCliente(oRst.getString("Cliente"));
                oCliente.setTip_cli_in(oRst.getInt("tip_cli_in"));     
                oCliente.setTipo(oRst.getString("Tipo"));
                oCliente.setTip_doc_cli_in(oRst.getInt("tip_doc_cli_in"));
                oCliente.setTipoDoc(oRst.getString("TipoDoc"));
                oCliente.setNum_doc_cli_vc(oRst.getString("num_doc_cli_vc"));
                oCliente.setDireccion(oRst.getString("Direccion"));
                oCliente.setTelefono(oRst.getString("Telefono"));
                oCliente.setContacto(oRst.getString("Contacto"));
              /*cod_cli_in, Cliente, tip_cli_in, Tipo, 
               tip_doc_cli_in, TipoDoc, num_doc_cli_vc, 
               Direccion, Contacto, Telefono*/
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oCliente;
    }

    public ProyectoActividadHistorial UltHis(int nActividad, int nTipo) {
       oHistorial=new ProyectoActividadHistorial();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadHistorialUltimo(?,?)}");         
            oCst.setInt(1, nActividad);
            oCst.setInt(2, nTipo);
            oRst = oCst.executeQuery();
                /*SELECT cod_acthist_in, tip_acthis_in,ufn_DevuelveCatalogo(5013,tip_acthis_in) as Tipo,
                fec_acthis_dt, DATE_FORMAT(fec_acthis_dt, '%d/%m/%Y') as fec_acthis_vc,
                res_acthis_in, ufn_DevuelveCatalogo(5014,res_acthis_in) as Rspta ,
                obs_acthis_vc,cod_sup_acthis_in, cod_a**/
            while (oRst.next()) {
                    oHistorial.setCod_acthist_in(oRst.getInt("cod_acthist_in"));
                    oHistorial.setTip_acthis_in(oRst.getInt("tip_acthis_in"));
                    oHistorial.setTipo(oRst.getString("Tipo"));
                    oHistorial.setFec_acthis_dt(oRst.getDate("fec_acthis_dt"));
                    oHistorial.setFec_acthis_vc(oRst.getString("fec_acthis_vc"));
                    oHistorial.setRes_acthis_in(oRst.getInt("res_acthis_in"));
                    oHistorial.setRes_acthis_vc(oRst.getString("Rspta"));
                    oHistorial.setObs_acthis_vc(oRst.getString("obs_acthis_vc"));
                    
                    oHistorial.setCod_sup_acthis_in(oRst.getInt("cod_sup_acthis_in"));
                    oHistorial.setEmpleado(oRst.getString("Empleado"));
            }             
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oHistorial;
    }

    /*Adjuntos*/
    
    public List<ProyectoActividadAdjunto> UbiAdjunto(int nActividad) {
        oListaAdjunto=new ArrayList<ProyectoActividadAdjunto>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadAdjuntoUbi(?)}");         
            oCst.setInt(1, nActividad);
            oRst = oCst.executeQuery();
            
            while (oRst.next()) {
                oListaAdjunto.add(new ProyectoActividadAdjunto(
                        oRst.getInt("cod_actadj_in"),
                        oRst.getDate("fec_actadj_dt"),
                        oRst.getString("fec_actadj_vc"),
                        oRst.getString("rut_actadj_vc"),
                        oRst.getString("des_actadj_vc"),
                        oRst.getInt("cod_act_in")));
            }             
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oListaAdjunto;
    }

    public void InsertarAdjunto(ProyectoActividadAdjunto ent) {
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadAdjuntoInsertar(?,?,?)}");    
                   
            oCst.setString(1, ent.getRut_actadj_vc());              
            oCst.setString(2, ent.getDes_actadj_vc());
            oCst.setInt(3, ent.getCod_act_in());           
           
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void EliminarAdjunto(int nCodigo) {
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadAdjuntoEliminar(?)}");    
                   
            oCst.setInt(1, nCodigo);            
           
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void Reasignar(int nCodigo, int nEjecutor) {
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEjecutor(?,?)}");    
                   
            oCst.setInt(1, nCodigo);     
            oCst.setInt(2, nEjecutor);     
           
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
        
    public void Aprobacion(int nCodigo, int nEmpleado) {
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ActividadAprobacion(?,?)}");    
            
            oCst.setInt(1, nCodigo);     
            oCst.setInt(2, nEmpleado);     
           
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public List<ProyectoActividad> CanEmp(int nEmpleado) {
        oLista=new ArrayList<ProyectoActividad>();
         
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadCanEmp(?)}");            
            oCst.setInt(1, nEmpleado);
            oRst = oCst.executeQuery();

            while (oRst.next()) {
                oActividad=new ProyectoActividad();
                oActividad.setCod_act_in(oRst.getInt("cod_act_in"));
                oActividad.setNom_act_vc(oRst.getString("nom_act_vc"));
                oActividad.setEst_act_in(oRst.getInt("est_act_in"));
                
                oActividad.setCod_emp_in(oRst.getInt("cod_emp_in"));
                oActividad.setCod_sup_act_in(oRst.getInt("cod_sup_act_in"));
                
                oActividad.setCod_cli_in(oRst.getInt("cod_cli_in"));
                oActividad.setCod_pro_in(oRst.getInt("cod_pro_in"));
                oActividad.setTip_per_in(oRst.getInt("tip_per_in"));
            
                oActividad.setCod_proy_in(oRst.getInt("cod_proy_in"));
                        
                oActividad.setEstadoPredecesor(oRst.getInt("est_actpre_in"));
                oActividad.setTipoPredecesor(oRst.getInt("tip_actpre_in"));
                oActividad.setPrincipalPredecesor(oRst.getBoolean("apro_actpre_bo"));
                
                oActividad.setCod_ant_act_in(oRst.getInt("cod_ant_act_in"));
                oLista.add(oActividad);            
            }
           
            oRst.close();
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       return oLista;
    }

    public void EditarEstado(int nCodigo, int nEstado) {
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEstado(?,?)}");    
                   
            oCst.setInt(1, nCodigo);     
            oCst.setInt(2, nEstado);     
           
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void EtapaActivacion(int nEtapa) {
       try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEtapaActivacion(?)}");    
                   
            oCst.setInt(1, nEtapa);   
           
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void Activacion(int nActividad) {
        try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadEditarActivacion(?)}");    
                   
            oCst.setInt(1, nActividad);
           
            oCst.execute();          
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public int Aprobador(int nActividad, int nEmpleado) {
        int nAprobador=0;
         try {
            oBase = new BDConexion();
            oConexion = oBase.getDataSource().getConnection();
            oBase = null;
            oCst = oConexion.prepareCall("{call usp_ProyectoActividadAproListar(?,?,?)}");    
                   
            oCst.setInt(1, nActividad);
            oCst.setInt(2, nEmpleado);
            oCst.registerOutParameter(3, java.sql.Types.INTEGER);
           
            oCst.execute();      
            nAprobador=oCst.getInt(3);
            oCst.close();
            oConexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(DatProyectoActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
        return nAprobador;
    }
}